#include "../Include/Customer.hh"

namespace minibank {

// Constructor
Customer::Customer(const std::string& name, const BankAccount& savings, const BankAccount& checking)
    : name_(name), savings_(savings), checking_(checking) {}

// Copy constructor
Customer::Customer(const Customer& other)
    : name_(other.name_), savings_(other.savings_), checking_(other.checking_) {}

// Copy assignment operator
Customer& Customer::operator=(const Customer& other) {
    if (this != &other) {
        name_ = other.name_;
        savings_ = other.savings_;
        checking_ = other.checking_;
    }
    return *this;
}

// Destructor
Customer::~Customer() {
}

// Getters
std::string Customer::getName() const {
    return name_;
}

BankAccount& Customer::getSavingsAccount() {
    return savings_;
}

const BankAccount& Customer::getSavingsAccount() const {
    return savings_;
}

BankAccount& Customer::getCheckingAccount() {
    return checking_;
}

const BankAccount& Customer::getCheckingAccount() const {
    return checking_;
}

} // namespace minibank